//682. 棒球比赛
//思路：模拟规则。使用栈将字符串的每个字符进行存储，并将结果保存到一个变量中，最后返回


#include <stdlib.h>
int calPoints(char ** operations, int operationsSize){
    int ret = 0;
    int* tmp = (int*)malloc(sizeof(int) * operationsSize);
    int pos = 0;
    for(int i = 0; i < operationsSize; i++)
    {
        switch (operations[i][0])
        {
        case '+':
            ret += tmp[pos-1] + tmp[pos-2];
            tmp[pos++] = tmp[pos-1] + tmp[pos-2];
            break;
        case 'D':
            ret += 2 * tmp[pos-1];
            tmp[pos++] = 2 * tmp[pos-1];
            break;
        case 'C':
            ret -= tmp[pos-1];
            pos--;
            break;
        default:
            ret += atoi(operations[i]);//atoi函数作用是将字符串转换为整数类型，
                                       //当碰见非数字字符就会停下来
            tmp[pos++] = atoi(operations[i]);
            break;
        }
    }
    free(tmp);
    return ret;
}